﻿using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using csvmb.index.contracts;

namespace csvmb.index
{
    public class Zeilen_indizieren : IZeilen_indizieren
    {
        internal IIndex index;

        public void Process(IEnumerable<long> Datenzeilenpositionen_ab_Zeile_2)
        {
            Trace.TraceInformation("Index.Zeilen_indizieren mit {0}", Datenzeilenpositionen_ab_Zeile_2);

            index.Clear();
            long zeilennummer = 0;
            foreach (var zeilenposition in Datenzeilenpositionen_ab_Zeile_2)
            {
                index.Add(zeilennummer, zeilenposition);
                zeilennummer = zeilennummer + 1;
            }

            Result();
        }

        public event Action Result;

        public void Inject(IIndex independent)
        {
            Trace.TraceInformation("Inject");

            index = independent;
        }
    }
}
